package controllers;

import models.Atendente;
import models.Pessoa;
import play.Logger;
import play.mvc.*;


/**
 * Classe de login
 * 
 * 
 */
public class Login extends Controller {

	/**
	 * Tenta logar
	 * 
	 * @param user
	 * @param password
	 */
	public static void tryLogin(Pessoa p) {
		// Tenta logar:
		Pessoa pessoa = Pessoa.find("byLoginAndSenha", p.login, p.senha)
				.first();
		if (pessoa != null) {
			session.put("pessoa", pessoa.id.toString());
			flash.success("Olá %s ", pessoa.nome);
			Application.index();
		}

		// Cria um login para admin
		if (p.login.equals("admin") & p.senha.equals("admin")) {
			Logger.info("%s", p);

			Atendente a = new Atendente();
			a.login = "admin";
			a.senha = "admin";
			a.nome = "admin";
			a.matricula = "admin";
			a.save();

			session.put("pessoa", a.id.toString());
			flash.success("Olá %s ", a.login);
			Application.index();
		}

		flash.error("Login/senha incorretos.");
		form();

	}

	/**
	 * Retorna a "pessoa" cujo login está registrado na sessão
	 */
	public static Pessoa getLogin() {
		String id = session.get("pessoa");

		if (id != null) {
			Pessoa pessoa = Pessoa.findById(Long.parseLong(id));
			return pessoa;
		}
		return null;

	}

	/**
	 * Exibe o formulário de login
	 */
	public static void form() {
		render();
	}

	/**
	 * Remove os dados da sessão, efetuando o logout
	 */
	public static void logout() {
		session.remove("pessoa");
		Application.index();
	}

}
